package cronInit

import (
	"gin_chat_demo/global"
	"github.com/robfig/cron/v3"
)

func InitCron() {
	global.Cron = cron.New()

	//添加定时任务检查服务器状态
	//global.Cron.AddFunc("@every 5s", func() {
	//	inspect, err := models.PickServerInspect()
	//	if err != nil {
	//		zap.Logger.Errorf("定时检查服务器状态，查询服务器出现问题 err: %v", err)
	//	}
	//	//根据服务器信息检查服务器状态
	//	var sw sync.WaitGroup
	//	sw.Add(len(inspect))
	//	for _, server := range inspect {
	//		go func(server models.ArenaCommunityServer) {
	//			defer sw.Done()
	//			client, _ := a2s.NewClient(fmt.Sprintf("%v:%v", server.IP, server.Port), a2s.TimeoutOption(500*time.Millisecond))
	//			defer func() {
	//				if client != nil {
	//					client.Close()
	//				}
	//			}()
	//			_, queryErr := client.QueryInfo()
	//			if queryErr != nil {
	//				zap.Logger.Error("服务器状态还是异常")
	//			} else {
	//				//修改服务器的状态
	//				models.UpdateServerStatus(server.ID, 1)
	//			}
	//			//修改检查时间
	//			models.UpdateServerInspectTime(server.ID)
	//		}(server)
	//	}
	//	sw.Wait()
	//})
	go global.Cron.Start()
	defer global.Cron.Stop()
}
